/*
  This file is part of Subsonic.
    Subsonic is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    Subsonic is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
    Copyright 2015 (C) Scott Jackson
*/

package net.nullsum.audinaut.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;

import net.nullsum.audinaut.R;
import net.nullsum.audinaut.view.BasicHeaderView;
import net.nullsum.audinaut.view.BasicListView;
import net.nullsum.audinaut.view.UpdateView;

import java.util.List;

public class MainAdapter extends SectionAdapter<Integer> {
    private static final int VIEW_TYPE_ALBUM_LIST = 1;

    public MainAdapter(Context context, List<String> headers, List<List<Integer>> sections, OnItemClickedListener onItemClickedListener) {
        super(context, headers, sections);
        this.onItemClickedListener = onItemClickedListener;
    }

    @Override
    public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
        UpdateView updateView = new BasicListView(context);
        return new UpdateView.UpdateViewHolder(updateView);
    }

    @Override
    public void onBindViewHolder(UpdateView.UpdateViewHolder holder, Integer item, int viewType) {
        UpdateView updateView = holder.getUpdateView();

        if (viewType == VIEW_TYPE_ALBUM_LIST) {
            updateView.setObject(context.getResources().getString(item));
        } else {
            updateView.setObject(item);
        }
    }

    @Override
    public int getItemViewType(Integer item) {
        return VIEW_TYPE_ALBUM_LIST;
    }

    @Override
    public UpdateView.UpdateViewHolder onCreateHeaderHolder(ViewGroup parent) {
        return new UpdateView.UpdateViewHolder(new BasicHeaderView(context, R.layout.album_list_header));
    }

    @Override
    public void onBindHeaderHolder(UpdateView.UpdateViewHolder holder, String header, int sectionIndex) {
        UpdateView view = holder.getUpdateView();
        CheckBox checkBox = view.findViewById(R.id.item_checkbox);

        String display;
        if ("songs".equals(header)) {
            display = context.getResources().getString(R.string.search_songs);
            checkBox.setVisibility(View.GONE);
        } else {
            display = header;
            checkBox.setVisibility(View.GONE);
        }

        view.setObject(display);
    }
}
